import os
import time

from selenium.webdriver.support.wait import WebDriverWait

from base import log
from config import BASE_DIR


class Base:
    #初始化方法
    def __init__(self,driver):
        log.info("正在初始化，driver对象：{}",format(driver))
        self.driver = driver

    #查找元素方法
    def base_find(self, loc, timeout=10, poll_frequency=0.5):
        log.info("正在查找元素：{}".format(loc))
        print("正在查找：{}".format(loc))
        return WebDriverWait(self.driver, timeout, poll_frequency).until(lambda x: x.find_element(*loc))

    #点击方法
    def base_click(self,loc):
        log.info("正在调用点击方法：{}".format(loc))
        self.base_find(loc).click()

    #输入方法
    def base_input(self,loc,value):
        log.info("正在调用输入方法：{} 输入内容:{}".format(loc,value))
        el = self.base_find(loc)
        el.clear()
        el.send_keys(value)

    #获取文本方法
    def base_get_text(self,loc):
        log.info("正在调用获取文本方法：{}".format(loc))
        return self.base_find(loc).text

    #截图方法
    def base_img(self):
        log.info("正在调用截图方法")
        img_path = BASE_DIR + os.sep + "img" +os.sep + "{}.png".format(time.strftime("%Y%m%d%H%M%S"))
        self.driver.get_screenshot_as_file(img_path)


